/*
 * PElement.h
 *
 *  Created on: 15.04.2012
 *      Author: Eugene Kornykhin
 */

#ifndef PELEMENT_H_
#define PELEMENT_H_

#include "Interpreter.h"

class PElement {
public:
	PElement();
	virtual ~PElement();

	virtual void execute(Interpreter &) = 0;

	virtual PolizPosition next_position_after(PolizPosition) const = 0;
	virtual bool isHalt() const = 0;
	virtual PElement *clone(const Poliz &) const = 0;
	virtual std::string toString() const = 0;
};

#endif /* PELEMENT_H_ */
